package com.cskaoyan.javase.oop1._18oop;

/**
 * 把大象放进冰箱里
 * 用面向对象的程序去实现
 *
 * 对象: 大象和冰箱
 * 类: 大象类和冰箱类
 *
 *
 * @since 11:29
 * @author wuguidong@cskaoyan.onaliyun.com
 */
public class Demo2 {
    public static void main(String[] args) {
        // 演示
        Elephant e = new Elephant();
        Fridge f = new Fridge();
        e.fridge = f;
        System.out.println("🐘想要进去冰箱!");
        e.runToFridge();
        f.openDoor();
        e.runToFridge();
        f.closedDoor();
    }
}

class Elephant {
    // 持有冰箱对象的引用,用于方便交互
    Fridge fridge;

    public void runToFridge() {
        // 需要知道冰箱门的状态,然后决定是否进入
        if (fridge.doorState){
            System.out.println("门是开着的,那我就进去了!");
            return;
        }
        System.out.println("门没开,赶紧开门,我要进去睡觉!");
    }
}

class Fridge {
    /*
        门默认是false的,表示门关着
        用true表示门开着
     */
    boolean doorState = false;

    public void openDoor() {
        doorState = true;
        System.out.println("我把门打开了,🐘快进来吧!");
    }

    public void closedDoor() {
        doorState = false;
        System.out.println("🐘已经进来了,我把门关上了!");
    }
}